﻿Imports System

Namespace Utils

    ''' <summary>
    ''' Especifica el nombre de pestaña a crear
    ''' </summary>
    ''' <remarks></remarks>
    <AttributeUsage(AttributeTargets.Assembly Or AttributeTargets.Class)> _
    Public Class ToolboxTabNameAttribute
        Inherits Attribute

        Private _TabName As String = ""

        Public ReadOnly Property TabName As String
            Get
                Return _TabName
            End Get
        End Property

        Public Sub New(ByVal tabName As String)
            _TabName = tabName
        End Sub
    End Class

    ''' <summary>
    ''' Contiene las funciones comunes requeridas por la libreria
    ''' </summary>
    ''' <remarks></remarks>
    Friend Class Funciones

        ''' <summary>
        ''' Obtiene la fecha canonica, indicando el Año y numero de dia del año actual
        ''' </summary>
        ''' <returns>String</returns>
        ''' <remarks></remarks>
        Friend Shared Function GetCannonicalDate() As String
            Dim out As String = Now.Year
            out &= Now.DayOfYear
            Return out
        End Function

        ''' <summary>
        ''' Convierte un valor Si/No en su equivalente para etiquetas HTML
        ''' </summary>
        ''' <param name="Value">Valor a convertir</param>
        ''' <returns>"true" o "false", segun sea el caso</returns>
        ''' <remarks></remarks>
        Friend Shared Function ToHtmlBoolean(ByVal Value As Boolean) As String
            Return IIf(Value = True, "true", "false")
        End Function

        ''' <summary>
        ''' Convierte un valor de esquema de colores del control Facebook en su equivalente para etiquetas HTML
        ''' </summary>
        ''' <param name="ColorScheme">Esquema de colores a convertir</param>
        ''' <returns>"light" o "dark", segun sea el caso</returns>
        ''' <remarks></remarks>
        Friend Shared Function GetColorScheme(ByVal ColorScheme As Facebook.Common.PluginColorSchemes) As String
            Select Case ColorScheme
                Case Facebook.Common.PluginColorSchemes.Light : Return "light"
                Case Facebook.Common.PluginColorSchemes.Dark : Return "dark"
                Case Else : Return "light"
            End Select
        End Function

        ''' <summary>
        ''' Convierte un valor de diseño de control Facebook en su equivalente para etiquetas HTML
        ''' </summary>
        ''' <param name="Layout">Valor de diseño de control a convertir</param>
        ''' <returns>"box_count", "button_count" o "", segun sea el caso</returns>
        ''' <remarks></remarks>
        Friend Shared Function GetLikeButtonLayout(ByVal Layout As Facebook.Common.LikeButtonLayouts) As String
            Select Case Layout
                Case Facebook.Common.LikeButtonLayouts.BoxCount : Return "box_count"
                Case Facebook.Common.LikeButtonLayouts.ButtonCount : Return "button_count"
                Case Else : Return ""
            End Select
        End Function

    End Class

End Namespace
